System and method for transmitting media based files

ABSTRACT

A method and apparatus is disclosed for transmitting a requested media file through a network. A master controller of a server partitions the media object. The master controller of the server then assigns a segment of said partitioned media object to a file partition handler for transmission over the network to a client that requested the media object. The file partition handler transmits the segment over a user datagram protocol port through the network to a client. The master controller then assigns a second segment of said partitioned media object to the file partition handler when the original segment is transmitted successfully to the client. The segmentation of the media object is determined in response to the availability of file partition handlers and the conditions specified by the client.

This application claims the benefit, under 35 U.S.C. § 365 ofInternational Application PCT/US2004/009478, filed Mar. 29, 2004, whichwas published in accordance with PCT Article 21(2) on Oct. 14, 2004 inEnglish and which claims the benefit of U.S. provisional patentapplication No. 60/458,588, filed Mar. 28, 2003.

FIELD OF THE INVENTION

The present invention relates to the transmission of digital audio andvideo files, specifically media objects communicated through a network.

BACKGROUND

With the growth in the satellite and cable industries, there has beensignificant interest in developing architecture for deliveringfull-length movies to a home multimedia user. One concept of deliverycalled video on demand (VOD) provides a movie to a user based upon theselection that the user makes. The user may select programming via anelectronic programming guide (EPG) that lists available media that maybe received through a broadcast service. Once the movie is selected, thebroadcast system would transmit the movie to the home user, thetransmission either occurring through a cable means (such as a MPEG-2digital cable transmission), a satellite broadcast (as DBS, DIRECTV™,DISH NETWORK™, etc.), a terrestrial broadcast (UHF, VHF, or broadcastchannels for receiving standard definition/high definition programming,etc.), or twisted pair connection (such as DSL, etc.).

The complexity of transmitting a digital video (audio) file, hence forthreferred to as a media object, requires that the transmissionarchitecture be capable of handling digital video files of a large size.For instance, the requirements for a media object to be displayed at a“near to motion picture quality” (ex. High Definition Television), as adisplay format, requires that the transmission architecture requires thenetwork support a throughput of nearly 20 Mbits/sec. The transmissionarchitecture also has to have a low transmission error rate, as to notcorrupt the requirements of the video/audio transmission. For instance,DBS satellite systems have to have error rates in the range from 10ˆ-9to 10ˆ-11 bits to offer an acceptable quality of service (QOS).

The likelihood for an error corrupting the transmission of a mediaobject is reduced if a media object is broken up into discrete segments.Such segments, known as data packets, separate the media object intoindividual divisions that are reconstituted at a receiving end of thetransmission architecture. One used technique for packetizing data filescomplies with the MPEG-2 data-encoding standard to create a data stream(see MPEG-2 Specification ISO-13818-1) for encoding and transportingdiscrete data packets.

Such techniques for transmitting media objects are however not anefficient use of bandwidth. Other known techniques for transportingmedia objects such as file transport protocol (FTP) are limited tophysical constraints where only 300 Kilobytes per second can betransmitted, regardless of the available link speeds of the underlyingconnection. Additionally, some media object transportation techniquesare capable of utilizing the available bandwidth of a connection. Suchtechniques though use redundant packets in the transmission of a mediaobject that may require an encoding overhead of twice the size of theoriginal media object. Hence, such media object transmissionsinefficiently use half the available bandwidth for error correction.

SUMMARY OF THE INVENTION

A system and method for assigning transmitting a media object through anetwork based on the physical capabilities of such a network. The mediaobject is parsed into multiple partitions that are segmented aretransmitted to a client, based on the availability of access points andresources at the client side and the network connections between suchaccess points and a server transmitting such a media object.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other advantages and features of the present inventionwill be better understood from the following detailed description of thepreferred embodiments of the invention, which is provided in connectionwith the accompanying drawings. The various features of the drawings maynot be to scale. Included in the drawing are the following figures:

FIG. 1 is a system diagram in accordance with an exemplary embodiment ofthe present invention;

FIG. 2 is a system diagram demonstrating a transmission of a partitionedmedia object to a single client in accordance with an exemplaryembodiment of the present invention;

FIG. 3 is a system diagram demonstrating the transmission of a segmentedmedia object via a multicasting operation in accordance with anexemplary embodiment of the present invention;

FIG. 4 is a flow chart of a transmission process that segments a mediaobject into multiple partitions in accordance with an exemplaryembodiment of the present invention;

FIG. 5 presents an exemplary embodiment of a file segment of apartitioned media object; and

FIG. 6 presents a two-dimensional array indicating packet loss during amulticast transmission of a partitioned media object, in accordance withan exemplary embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

Although the invention is described in terms of exemplary embodiments,it is not limited thereto. Rather, the appended claims should beconstrued broadly, to include other variants and embodiments of theinvention, which may be made by those skilled in the art withoutdeparting from the scope and range of equivalents of the invention.

The present invention is a system and method for transmitting andreceiving audio, video, or a combination of both types of media as amedia file or “media object”. As used herein, the term “media object”includes audio, video, textual, multimedia data files, and streamingmedia files. Multimedia objects comprise any combination of text, image,video, and audio data. Streaming media comprises audio, video,multimedia, textual, and interactive data files that are delivered to auser via the Internet, satellite or other communications networkenvironment and begin to play on the user's computer/device beforedelivery of the entire file is completed. Media objects may betransmitted over any communications network including via the Internet,satellite (DSS, DVB-S), cable, DSL, T1 lines, wireless network, or otherdelivery systems capable of delivering media objects.

Examples of the content of media objects include songs, politicalspeeches, news broadcasts, movie trailers, movies, television showbroadcasts, radio broadcasts, financial conference calls, live concerts,web-cam footage, and other special events. Media objects are encoded invarious formats including REALAUDIO®, REALVIDEO®, REALMEDIA®, APPLEQUICKTIME®, MICROSOFT WINDOWS® MEDIA FORMAT, QUICKTIME®, MPEG-2 VIDEOCOMPRESSION, MPEG-4 VIDEO AND/OR AUDIO COMPRESSION, JOINT VIDEO TEAMCOMPRESSION FORMAT (MPEG-4 part 10 AVC, H.264), MPEG-2 LAYER III AUDIO,MP3®. Typically, media objects are designated with extensions (suffixes)indicating compatibility with specific formats. For example, mediaobjects (e.g., audio and video files) ending in one of the extensions,.ram, .rm, rpm, are compatible with the REALMEDIA® format. Some examplesof file extensions and their compatible formats are listed in theTable 1. A more exhaustive list of media types, extensions andcompatible formats may be found at http://www.bowers.cc/extensions2.htm.TABLE 1 Format Extension REALMEDIA ® .ram, .rm, .rpm APPLE .mov, .qifQUICKTIME ® MICROSOFT .wma, .cmr, .avi WINDOWS ® MEDIA PLAYER MACROMEDIA.swf, .swl FLASH MPEG .mpg, .mpa, .mp1, .mp2 MPEG-2 LAYER III .mp3,.m3a, .m3u Audio

The preferred embodiment of the invention operates with media objectsthat contain video data for presenting a video presentation of “near tomotion picture quality”. Such media objects may be encoded in a varietyof formats such as MPEG-2 (Motion Picture Standards Group StandardISO/IEC 13818-1:2000) and ITU-T H.264/MPEG AVC (ISO/IEC 14496-10), ormay be uncompressed. Furthermore, the described embodiments of thepresent invention are also to be used in the professional areas forapplications such as the post-production of movies or television showsand for other applications requiring the transmission of large mediaobjects.

In FIG. 1, a transmission system in accordance with the presentinvention is shown. System 100 displays an embodiment of a transmissionsystem for transporting a large media object to clients 140. File server110 is a storage device such as a matrix of hard drives having acapacity of Terabytes and/or Gigabytes capable of storing multiple mediaobjects. File server 110 is coupled through a local area network toservers 115 that house control components such as master controller 120and to file partition handlers 130. Server 115 preferably comprises ahost computer or a series of computers that are capable of transmittinga media object transmitted through network 170. It is to be noted thatany disclosed master controller and file partition handler may beimplemented as hardware, software, or as a combination of hardware andsoftware, in accordance with the principles of the present invention.

Master controller 120 manages the transport of a partitioned mediaobject through network 170 to clients 140. Master controller 120 alsocoordinates the operation of file server 110 and file partitionshandlers 130 for segmenting of a media object into multiple partitions.File segmentation is based on the availability of resources on theclient side requesting the media object effecting both the segmentationof the media file and error recovery of such transmitted segments. Thecontrol communications between master controller 120 and client 140 arepreferably handled through TCP/IP compliant network connection.

File partition handler 130 is responible for retrieving and transportingthe appropriate segment of a media object in accordance with theinstructions issued from master controller 120. File partition hander130 preferably transports its associated file segment to client 140using a UDP based protocol over a network connection as described inPostel, J., “User Datagram Protocol,” Request For Comments 768,USC/Information Sciences Institute, August 1980. A group of filepartition handlers 130 ideally transmit their respective segments orpackets in a simultaneous or parallel fashion, so the transmitted datareceived at a client 140 in a contemporaneous manner.

Network 170 may be any type of network known in the art. Preferably,such a network is capable of accommodating multiple connections betweenresources at a server side of a server and at the client side of aclient, such connections being UDP based, TCP/IP based, or a mixture ofboth. The bandwidth accommodated by network 150 is preferably a largebandwidth connection such as a T1 connection (1.5 Megabits per second,Mbps), T3 connection (45 Mbps), DS3 connection (45 Mbps), OC3 connection(155 Mbps), OC12 (248000 Mbps), and the like.

Client 140 preferably comprises a host computer or a series of computersthat are capable of receiving a media object transmitted through network170. Preferably, each client 140 has a series of access points or nodesthat is associated with an IP address and a port address. Such accesspoints are shown as master controller 150 and file partition handlers160, at the client side.

A segment of a partitioned media object is transmitted by file partitionhandler 130 to the IP address and port of an access point of client 140via UDP, as described above. Access points may also be identified by acorresponding Network Interface Card address (NIC address) or MediaAccess Control address (MAC) address associated with an access pointassociated with client 140, this case being a file partition handler160, although a client 140 may not have such a component. The segmentsof the media object received by the access points of client 140 are thenreconstituted into the media object, when completely received. Missingsegments of the media object are replaced using the techniques describedlater in this specification. It should be noted for the operation of theinvention that master controller 120 and file partition handler 130 mayoccupy the same server 115, or may occupy several servers 115.Additionally, master controller 150 and file partition handlers 160 mayoccupy the same client 140, or may occupy several clients 140, dependingon the requirements of the desired transmission system. The principlesof the present invention may be applied to other distributed networkingenvironments where multiple servers 115 or clients 140 are used totransmit and/or receive the same media object.

FIG. 2 presents an embodiment of the present invention for transferringa segmented media object to a single client 240. In this embodiment ofthe present invention, system 200 has client 240 requesting a mediaobject over network 250 to server 215, where the media object is storedin file server 210. In this embodiment, client 240 possesses mastercontroller 220 for issuing the request for the media object and forconfiguring the file partition handlers 230 available for receiving asegmented media object. Master controller 220 through the use of aTCP/IP based transmission indicates to server 215 which correspondingUDP ports of file partition handlers 230 are to receive a correspondingfile segment and a requested media object is to be segmented. Mastercontroller 220 concatenates the received segments when all of thesegments are successfully retrieved from file partition handlers 230over their respective UDP connections through network 250.

FIG. 3 presents an embodiment of the present invention for transferringa segmented media object to multiple clients 350 using an IPmulticasting architecture as described in Thaler, D., “InteroperabilityRules for Multicast Routing Protocols,” Request For Comments 2715,Microsoft, October, 1999.

In this embodiment, at least two clients 340 are present where eachclient 340 has a corresponding master controller 350 for issuing arequest for a media object stored in file server 310. Each mastercontroller 350 though has to account the delays required to synchronizeall clients 340 requesting a media object. The request for media objectis established by each master controller 350 to server 315 which thenmulticasts the segmented media object to the corresponding filepartition handlers 360 of client 340, or a single master controller 360specifies the IP addresses to where the segments of media object shouldbe transmitted via an IP multicast through multicast network 370. Thetransmission of the file segments to file partition handlers 360 and thereconstitution of such received file segments into a media object atclients 340 is similar as described in the specification for FIGS. 1 and2.

Alternatively, master controllers 350 operate in conjunction with mastercontroller 320 of server 315 to receive a partitioned media object.Master controller 320 informs master controllers 350 which multicastaddresses will be used to transmit a segment of a partitioned mediaobject. The respective master controller 350 will command theirrespective file partition handlers to receive such segments throughmulticast network 370.

FIG. 4 is a flowchart of a method 400 for transmitting a media object,in accordance with an embodiment of the present invention. The stepspresented for the flow chart are presenting in view of FIG. 1. In step405, client 140 connects via network 170 with master controller 120,associated with server 115. The connection is established through aTCP/IP socket, where client 140 identifies the media object to betransferred. During this step, client 140 also specifies thecommunication rate for the transmission of the media object.

In step 415, master controller 120 determines the number of filepartitions handlers 130 necessary to meet the required communicationrate set forth by client 140. This step may also include that multipleservers be involved in the transmission of a segmented media object.Step 420 has master controller 120 instructing each partition handler130 as to which segment of the media object and what UDP port will beused to transmit to client 140.

Step 425 involves master controller 120 instructing client 140 of theUDP ports required to download the segments of the media object thatwill be eventually transmitted. Also, control information is transmittedby master controller 120 to client 140 indicating the how many packetswill be coming in from a UDP port for a particular segment of thedivided media object. Step 430 has each file partition handler 130putting a header block on its packets that are to be transmitted on itsassigned UDP port. Preferably, the header block are sequentiallygenerated in numerical order. The packets are then transmitted to client140.

Client 140 then determines what client based file partitions handlers160 are to be used in step 435, and what servers to activate to receivethe transmitted files. In step 440, the client based file partitionhandlers 160, as access points, receive packets representing thetransmitted segments of a media object, on a corresponding UDP port. Thesequence identifiers in the header block of the received packetsdetermine how to reconstruct the received segment of the media object.

If any packets are missing for a particular file partition handler 160,step 445 has client 140 notifying master controller 120 through theTCP/IP connection which packets are missing and are required to beretransmitted by a corresponding file partition handler 130. Preferably,client 140 has a client side master controller 150 for communicatingwith the master controller 120 at the server side. In step 450, client140 instructs master controller 120 that a particular segment of themedia object has been completely received. If the complete download ofthe media object is not complete, the client 140 further instructsmaster controller 120 to transmit and additional segment of the mediaobject using new parameters (as done in steps 420 to 445).

Step 460 has master controller 120 informing client 140 that allsegments of the partitioned media object have been transmitted. Client140 then reconstructs the media object using the received segments ofthe media object.

FIG. 5 shows an exemplary embodiment of a file segment of partitionedmedia object. As shown in the figure, the file segment comprises majorsegments 510 and minor segments 520. Major segments 510 are used byclient 140 and server 115 as the major segment boundaries, where a majorsegment 510 is a large “block” used to send a file segment. Minorsegment 520 is the smaller “blocks” which are used to construct a majorsegment 510. In the preferred embodiment of the present invention, amajor segment 510 has to be completely received by client 140 before asecond major segment 510 is transmitted. If a major segment 510 is notcompletely received, client 140 tells master controller 120 what minorsegment 520 of said major segment 510 to retransmit, where each minorsegment 520 corresponds to a particular file partition handler 130 ofserver 115.

In a unicast transmission, master controller 120 designates a majorsegment 510 to a group of file partition handlers 130. Each filepartition handler 130 is then assigned a part of major segment 510 as aminor segment 520 that are transmitted as UDP packets. Upon thesuccessful transmission of the minor segments 520 used to constructmajor segment 510, each file partition handler 130 informs mastercontroller 120 that the transmission of the major segment has completed.Master controller then will issue a second major segment 520 to bedivided up and transmitted by file partition handlers 130 to client 140,as previously described.

Advantageously, master controller 120 may be configured to build apipeline of major segments 510, eliminating the need for idle time whilemaster controller 120 processes a message from client 140 indicating achange in network conditions. The size of major segments 510 may also bemodified in response to network conditions. For example, a major segment510 may be composed of ten minor segments 520. In the case where theloss of packets is minor, the size of a major segment 510 would beincreased to twelve minor segments 520. Alternatively, in the case wherethe loss of packets is substantial, the size of major segment 520 wouldbe reduced to eight minor segments 520. The adjustment in the amount ofminor segments may be modified in accordance with the principles of thepresent invention.

It is also contemplated that if the number of minor segments 520 in amajor segment 510 would stay the same; the physical size (kilobytes) ofa major segment 520 would be modified in accordance with networkconditions. Such a determination is preferably made by master control145 of client 140. Alternatively, master controller 120 may alsoeliminate the use of major segments 510 and rely on the use of minorsegments 520 which are generated as contiguous blocks of data. Filepartition handlers 130 then transmit these minor segments 520 to client140, where each file partition handler 130 informs master controller 120about the successful transmission of each minor segment 520. Mastercontroller 120 then assigns a file partition handler 130 a new minorsegment 520 to be transmitted, repeating this process until all of heminor segments 520 of a segment of a partitioned media object aresuccessfully transmitted.

In the case of a unicast (or a one client) transmission, the inventionprovides several recovery schemes in the case where packets are lostduring such as transmission. In one embodiment, master controller 120 iscapable of adding additional file partition handlers 130 to transmitdata packets. Alternatively, master controller 120 assigns the task ofre-sending packets to a preexisting file partition handler 130.

A second scheme for packet loss protection involves master controller120 keeping a linked list of lost packets. In this embodiment, mastercontroller 120 and file partition handlers 130 of server 115 transmitall of the major segments 510 and minor segments 520 of a partitionedmedia object, this transmission being known as a “first pass”. Thecontents of the linked list are used by master controller 120 toindicate the packets lost during the “first pass” transmission. Servermaster controller 120 then coordinates a “second pass” transmission withfile partition handlers 130 and client 140 to rebroadcast the packets ofmajor segments 510 and minor segments 520 that were not successfullyreceived during the “first pass” transmission. This procedure isrepeated until a threshold of successfully received packets by client140 is reached.

Additional packet loss techniques include either server side mastercontroller 120 or client side master controller 150 monitoring therespective resources on their respective side. For example, if aparticular file partition handler 130 on the client side keeps on timingout or if client 140 stops responding, master controller 120 may cancelthe job assigned to the file partition handler 130 and reassign the job(of transmitting data) to a second file partition handler 130, orreassign a major segment 510 to a group of file partition handlers 130.Master controller 120 notifies a user about this time-out failure.

Alternatively, master controller 150 by keeping track of statistics onthe client side may discover that a UDP address continuously losespackets. Master controller 150 then informs server side mastercontroller 120 that there is a problem with the UDP address, indicatinga faulty file partition handler either at the server or client side ofthe system. Master controllers 120 and 150 then coordinate thetransmission of packets to a new UDP address, which may involve the useof new file partition handlers. These embodiments also contemplate thateither master controller 120 or 150 may be used to implement thedescribed timing out or UDP failure packet loss schemes, describedabove.

Packet loss techniques for multicast transmissions require that themaster controller of a server be prepared to utilize different methodsto stem the loss of transmitted packets. Referring to FIG. 3, servermaster controller 320 maintains a linked list of packets that are lostduring the transmission of major segments 510 and minor segments 520 ofa segmented media object, similar to the linked list used for unicasttransmissions. The modification to this linked list, as shown in FIG. 6,occupies a two-dimensional array where lost packets (minor segments)that were lost in respect to all clients 340. A “first pass”transmission of a partitioned media object is completed when all of themajor segments 510 of the media object are transmitted. The linked listupdated by master controller 320, upon the completion of eachtransmitted major segment 510.

Master controller 320 then uses the contents of the linked list torebroadcast the data packets not successfully received by clients 340during the “first pass”. This “second pass” transmission has majorsegments 510 and minor segments 520 being transmitted with the “lostpacket” information. This process is repeated until all clients 340receive all the segments of a partitioned media object. It is to benoted that the multicast transmission model also allows mastercontroller 320 to utilize the timing out and the UDP packet loss schemesdescribed in regards to the unicast transmission model described above.

Optionally, the present invention provides for additional embodimentsutilize control-processing schemes to benefit the transmissiontechniques used to transmit a partitioned media object. Specifically,the invention provides the operation where a transmission technique usedto transmit a media object may be changed, in accordance with therequests made for such a file.

For example, a media object is currently being transmitted as a UDPtransmission using the unicast technique described above. A secondrequest for the same file comes in to a server during the course of thistransmission. Referring to FIG. 3, a client side file partition handler330 of client 340 finishes receiving a segment of the partitioned mediaobject. File partition handler 330 then awaits further instructions asto how to proceed to receive a new segment of the partitioned mediaobject. Client master controller 350 (of the client that received thesegment) informs server master controller 320 that the client 340 hassuccessfully received the transmitted segment. Preferably, thiscommunication takes place at the boundary of a major segment 510,although the system may also have the communication take place for minorsegments 520.

Master controller 320 informs client master controller 350 that the nextsegment of the media object will come from a new address, specifically amulticast address. Client master controller 350 then instructs a filepartition handler 330 to receive the next segment of the media objectfrom the designated multicast address. In the interim, master controller320 designates that a file partition handler 330 start transmitting thisnext segment of the media object in the form of multicast packets fromthe designated multicast address. All other newly added clients 340requesting the media object will be instructed to receive segments ofthe media object from this multicast address, as well.

Master controller 320 will transmit all of the segments of a partitionedmedia object to clients 340 until of all the segments have beenreceived. The packet loss techniques, described above, may be used tobuttress the transmission of data.

In the case where a client 340 or a group of clients 340 request thesame media object during the course of an ongoing multicasttransmission, master controller 320 informs all of the new clients 340to join the multicast in progress at the next major segment 510boundary. This is done by having master controller 320 transmit themulticast address of corresponding file partition handlers 330transmitting segments of the requested media object. All synchronizationand control communications are preferably communicated between mastercontrollers 320 and 350 through TCP/IP sockets. Additionally, therebroadcast of multicast segments are preferably performed throughTCP/IP interfaces, as well. It should be noted that other controlcommunications might be used, in accordance with the principles of thepresent invention.

The described system of the invention provides that a client side orserver side master controller be capable of reconfiguring the use ofresources, especially file partition handlers. For rate controloperations, a client may request that a server transmit a partitionedmedia object at a desired communication rate. The master controller ofthe server would then determine how the file partition handlers of theserver should be utilized in response to such as request. Additionally,a client may request that a media object be transmitted using prioritymechanisms or rules such as “use 20% of the available bandwidth from08:00 to 17:00, otherwise use 90% of the available bandwidth”. Themaster controller of the server would modify the use of file partitionhandlers, as well in response to such a request. Similarly, a server onits own initiative may specify a limit to bandwidth used to transmit apartitioned media object. In the preferred embodiment of the presentinvention, the server and client will seek to utilize all availabletransfer resources to achieve the highest possible transfer rate.

The invention is configured to be self-teaching about system performanceso that better decisions about resource allocation can be made for thefuture transmission of partitioned media objects. Statistics aregathered on Central Processing Unit (CPU) utilizations, NIC throughput,transmission error rates, and end-to-end transfer speeds. The statisticsare gathered during a file transfer via the Operation System and otherthird party monitoring tools. The master controller, either at theclient or server side, derives network throughput by measuring how longit takes for the client to process a segment.

With the information about system performance, the master controllers ofthe client and server may adjust their assumptions about how a mediaobject should be partitioned, how many file partition handlers should beused, and how network latency and error rates for a specific client orserver should be taken into account.

Commands communicated between the servers and clients are describedbelow in Tables 2-8. Table 2 discloses an exemplary embodiment of atransfer request command that a client issues to a server to initiate atransfer of a requested media object. TABLE 2 Element Bytes UsageMessage 1 Identifier to indicate this is a file transfer request TypeFilename 100  The name of the file that this segment is associated withComm 1 Indicator of what communications speed the transfer Rate shouldbe conducted at Multicast 1 Indicator as to whether it is acceptable touse multicast to fulfill the request Session 4 Set if Message Type isfor a Restart Job ID

Table 3 discloses the format of an exemplary data control command usedby a file partition handler of a server to inform a client about thenumber of packets that should be expected for transmission for aspecified segment of a partitioned media object. Also this command isused for identifying where in the final file copy a received segment(major or minor) should be placed. TABLE 3 Element Bytes Usage Marker 7The literal “CONTROL” Segment 4 Identifier of the segment ID Filename100  The name of the file that this segment is associated with Offset 8The offset in the final file at which this segment should be placedNumber 4 Number of packets that will be received in this segment CRC 4CRC check of previous 121 bytes to validate packet integrity

Table 4 discloses the format of an exemplary data packet used totransmit data from the server to a client. Specifically, this datapacket format is used to form major and minor segments of a partitionedmedia object. TABLE 4 Element Bytes Usage Sequence 4 Orders data packetswithin the segment being ID transmitted Length 4 Number of bytes in thepacket Data NA The data bytes for the packet, of length specified inLength element CRC 4 CRC check of the data to validate packet integrity

Table 5 discloses the format of an exemplary retransmit command that isused by a client to request the retransmission of an identified packetthat was not successfully received. Such a command is transmitted to theserver responible for transmitting the lost packet. TABLE 5 ElementBytes Usage Message 1 Identifier to indicate this is a packet retransmitType request Segment 4 ID of segment for which packets are missing IDLength 4 Number of packet identifiers supplied in Packets elementPackets Variable The identity of each packet lost is filled in here

Table 6 discloses the format of an exemplary configuration command thatis transmitted from a server to a client indicating the start of a filetransfer. This command specifically indicates to the client what IPaddress or port to use to receive data from the server. TABLE 6 ElementBytes Usage Message 1 Identifier to indicate this is the configurationType message Session 4 Identifier for job, used for restart ID Protocol1 Indicates whether to use UDP or Multicast based Protocol Streams 1Number of streams to connect to Stream Variable Array of IP Address/Portnumber to connect to for Address receiving file segments

Table 7 discloses the format of an exemplary partition command that isused by a master controller of a server and is communicated to the filepartition handlers used to transmit a major/minor segment. Such acommand indicates how a media object is to be partitioned among filepartition handlers. TABLE 7 Element Bytes Usage Message 1 Identifier toindicate this is the partition message Type Protocol 1 Indicates whetherto use UDP or Multicast File Name 255  Path name of file to open fortransmitting Offset 8 Offset in file for reading data from Bytes 4Number of bytes to transmit in segment

Table 8 discloses the format of a segment complete command that iscommunicated by a client side master controller to a server when a filepartition handler indicates that it has completed processing a segment.The server's file partition handler processing the completed segmentwill be notified of the next segment of a partitioned media object toprocess. The file partition handler will then issue a data controlcommand to the client, in accordance command shown in Table 3. TABLE 8Element Bytes Usage Message 1 Identifier to indicate this is the segmentcomplete Type message Segment 4 Identifier of the segment for whichprocessing is ID complete

1. A method of segmenting a media object for transmission over a network(170), comprising the steps of: partitioning a media object into atleast two segments; assigning at least one of said segments to a filepartition handler; and transmitting said at least one segment using anassigned user datagram protocol port.
 2. The method of claim 1,comprising the steps of: notifying a master controller that a filepartition handler has transmitted said at least one segment; andassigning an additional segment of said partitioned media object to saidfile partition handler for transmission.
 3. The method of claim 2,wherein said master controller operates at least two file partitionhandlers where at least one segment of said partitioned media object,constituting a major segment, is broken into minor segments, each minorsegment being assigned to a file partition handler by said mastercontroller.
 4. The method of claim 3, wherein said minor segments aresuccessfully transmitted by said at least two file partition handlersbefore a second major segment is broken into minor segments andtransmitted by said file partition handlers.
 5. The method of claim 2,wherein said master controller and file partition handlers are part of aserver used to transmit said media object.
 6. The method of claim 2,wherein said master controller communicates with a second mastercontroller using a Transmission Control Protocol and Internet Protocolbased transmission scheme, and said file partition handlers communicateswith a server using UDP ports.
 7. The method of claim 2, wherein saidmaster controller keeps track of lost segments not successfullytransmitted in a linked list, wherein said master controller causes saidfile partition handler responsible for said lost segment to retransmitsaid lost segment.
 8. The method of claim 2, wherein said mastercontroller reassigns said segment of said partitioned media object to asecond file partition handler in response when said file partitionhandler fails to deliver said segment.
 9. The method of claim 1, whereinsaid segment is transmitted using a multicast compliant transmissionscheme for receipt by a plurality of clients.
 10. A method for receivinga segmenting a media object for transmission over a network, comprisingthe steps of: requesting a media object for transmission over a network;receiving instructions as to the user datagram protocol port used forreceiving a segment of said media object, wherein said media object ispartitioned into at least two segments; and receiving said segment oversaid UDP port.
 11. The method of claim 10, wherein said request for saidmedia object is placed by a master controller by a client, and said stepof receiving a segment is coordinated by said master controlleroperating a file partition handler of said client.
 12. The method ofclaim 11, wherein said master controller during said step for said mediaobject indicates a desired rate to receive said media object and theavailability of resources at said client.
 13. The method of claim 10,wherein a client receives said segment as part of a multicast complianttransmission scheme for receipt by a plurality of clients.
 14. Themethod of claim 11, wherein said master controller communicates with asecond master controller using a Transmission Control Protocol andInternet Protocol based transmission scheme, and said file partitionhandler communicates with a server using UDP ports.
 15. An apparatus fortransmitting a media object comprising: a master controller forpartitioning said media object; a plurality of file partition handlersfor transmitting segments of said partitioned media object, wherein saidmaster controller determines how to partition said media object inaccordance with the available file partition handlers, and said mastercontroller assigns a segment of said partitioned media object to a filepartition handler selected from said plurality of file partitionhandler.
 16. The apparatus of claim 15, wherein said file partitionhandler transmit said segment via a user datagram protocol port.
 17. Anapparatus for receiving a media object comprising: a master controller;and a plurality of file partition handlers for receiving segments of apartitioned media object, wherein said master controller determines howto reconstruct said segments of said partitioned media object.
 18. Theapparatus of claim 17, wherein said file partition handler receives saidsegment via a user datagram protocol port.